Page({
  data: {
    grades: [], // 成绩数据列表
    loading: false, // 加载状态
    username: '', // 用户名
    role: '', // 用户角色
    studentList: [], // 学生列表
    selectedStudentIndex: -1, // 选中的学生索引
    selectedStudentUsername:'', // 选中的学生
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function () {
    var username = wx.getStorageSync('username');
    var role = wx.getStorageSync('role');
    if (username && role) {
      this.setData({
        username: username,
        role: role
      });
    }
    this.fetchGrades();
    this.fetchStudents(); // 获取所有学生列表
  },

  //获取所有学生
  fetchStudents: function () {
    wx.request({
      url: 'http://192.168.172.134:5000/api/getAllStudents',
      method: 'GET',
      success: (res) => {
        if (res.data.code === 200) {
          this.setData({
            studentList: res.data.data
          });
        } else {
          wx.showToast({
            title: '获取学生列表失败',
            icon: 'none'
          });
        }
      },
      fail: () => {
        wx.showToast({
          title: '网络请求失败',
          icon: 'none'
        });
      }
    });
  },

  // 新增选择学生处理方法
  onStudentChange: function(e) {
    const index = e.detail.value;
    const selected = this.data.studentList[index];
    this.setData({
      selectedStudentIndex: index,
      selectedStudentUsername: selected.username
    });
    this.fetchGrades(); // 重新加载成绩
  },

  /**
   * 获取学生成绩数据
   */
  fetchGrades: function () {
    this.setData({
      loading: true
    });

    // 根据角色选择请求的接口
    let url, data = {};
    if (this.data.role === '学生') {
      url = 'http://192.168.172.134:5000/api/scoresWxByusername';
      data.username = this.data.username;
    } else if (this.data.role === '班主任') {
      url = 'http://192.168.172.134:5000/api/scoresWxByusername';
      data.username=this.data.selectedStudentUsername;
    } else {
      wx.showToast({
        title: '无权查看成绩',
        icon: 'none'
      });
      this.setData({
        loading: false
      });
      return;
    }
    // 假设后端接口：通过当前用户身份获取成绩
    wx.request({
      url: url, // 替换为实际接口地址
      method: 'GET',
      data: data,
      success: (res) => {
        if (res.data.code === 200) {
          this.setData({
            grades: res.data.data
          });
        } else {
          wx.showToast({
            title: '获取成绩失败',
            icon: 'none'
          });
        }
      },
      fail: () => {
        wx.showToast({
          title: '网络请求失败',
          icon: 'none'
        });
      },
      complete: () => {
        this.setData({
          loading: false
        });
      }
    });
  }
});